#include<bits/stdc++.h>
using namespace std;

class Solution {
public:
    vector<vector<int>> ans;
    vector<int> temp;
    void dfs(int n, int k){
        if(temp.size() == k){
            ans.emplace_back(temp);
            return;
        }
        int i = 0;
        if(!temp.empty()) i = temp.back();
        if(n - i < k - temp.size()) return ;
        for(; i<n; ++i){
            temp.push_back(i+1);
            dfs(n, k);
            temp.pop_back();
        }
    }
    vector<vector<int>> combine(int n, int k) {
        dfs(n, k);
        return ans;
    }
};